package com.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;

@Configuration
public class AccessTokenConfig {

    @Bean
    TokenStore tokenStore(){
        // 配置 token 存储方式
        return new JwtTokenStore(jwtAccessTokenConverter());
    }

    /**
     * 提供了一个 JwtAccessTokenConverter，这个 JwtAccessTokenConverter 可以实现将用户信息和 JWT 进行转换
     * （将用户信息转为 jwt 字符串，或者从 jwt 字符串提取出用户信息）。
     */
    @Bean
    JwtAccessTokenConverter jwtAccessTokenConverter(){
        JwtAccessTokenConverter jwtAccessTokenConverter = new JwtAccessTokenConverter();
        // 设置 jwt 密钥
        jwtAccessTokenConverter.setSigningKey("wangnian");
        return jwtAccessTokenConverter;
    }

}
